package com.iuie.ns.datum.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.iuie.ns.frame.persistence.annotations.MyBatisRepository;

/**
 * 消费报表-mapper
 * @author liujie
 * @date 2018年5月25日上午8:37:21
 */
@MyBatisRepository
public interface UserExpenseReportMapper {

	/**
	 * 按天查询消费和报表数据
	 * @param categories
	 * @param userId 
	 * @return
	 * @date 2018年5月23日上午8:16:42
	 */
	List<Double> findConsumeSumReportDataWithDay(@Param("categories") List<String> categories, @Param("userId") String userId);

	/**
	 * 按周查询消费和报表数据
	 * @param categories
	 * @return
	 * @date 2018年5月23日下午5:50:41
	 */
	List<Double> findConsumeSumReportDataWithWeek(@Param("categories") List<String> categories, @Param("userId") String userId);

	/**
	 * 按月查询消费和报表数据
	 * @param categories
	 * @param userId
	 * @return
	 * @date 2018年5月24日上午8:21:29
	 */
	List<Double> findConsumeSumReportDataWithMonth(@Param("categories") List<String> categories, @Param("userId") String userId);

	/**
	 * 按消费类型查询报表
	 * @param startTime
	 * @param endTime
	 * @param userId
	 * @return
	 * @date 2018年5月25日上午8:25:35
	 */
	List<Map<String, String>> findConsumeTypeReportData(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("userId") String userId);
	
	/**
	 * 按消费渠道查询报表
	 * @param startTime
	 * @param endTime
	 * @param userId
	 * @return
	 * @date 2018年5月25日上午8:52:05
	 */
	List<Map<String, String>> findConsumeChannelReportData(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("userId") String userId);

	/**
	 * 查询消费类型的报表数据（数量统计）
	 * @param startTime
	 * @param endTime
	 * @param userId
	 * @return
	 * @author iuie
	 * @date 2018年5月29日 下午3:55:43
	 */
	List<Map<String, String>> findConsumeTypeAccordCountReportData(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("userId") String userId);

	/**
	 * 查询消费渠道的报表数据（数量统计）
	 * @param startTime
	 * @param endTime
	 * @param userId
	 * @return
	 * @author iuie
	 * @date 2018年5月29日 下午3:55:54
	 */
	List<Map<String, String>> findConsumeChannelAccordCountReportData(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("userId") String userId);
	
}
